import { trackPresenceApi } from '@/api/user'
import { useUserStore } from '@/store/user' 



let heartbeatTimer: number | null = null

// 心跳检测任务
async function  heartbeatTask() {
  const userStore = useUserStore()
  try {
    const {data} = await trackPresenceApi()
    console.log('心跳数据返回值：',data)
     userStore.setToken(data)
  } catch (error) {
    console.error('心跳检测失败:', error)
    stopHeartbeat() // 失败时自动停止
  }
}

// 启动心跳检测
export function startHeartbeat() {
  // 先停止已有定时器
  stopHeartbeat()
  
  // 立即执行第一次检测
  heartbeatTask()
  
  // 设置定时器（2分钟）
  heartbeatTimer = window.setInterval(heartbeatTask,  1* 60 * 1000)

  // 添加页面关闭监听
  window.addEventListener('beforeunload', handleBeforeUnload)
  // 添加页面隐藏监听（可选）
  //window.addEventListener('visibilitychange', handleVisibilityChange)
}

// 停止心跳检测
export function stopHeartbeat() {
  if (heartbeatTimer) {
    clearInterval(heartbeatTimer)
    heartbeatTimer = null
  }
  // 清理事件监听
  window.removeEventListener('beforeunload', handleBeforeUnload)
  window.removeEventListener('visibilitychange', handleVisibilityChange)
}

// 页面关闭处理
function handleBeforeUnload() {
  console.log('页面即将关闭，停止心跳检测')
  stopHeartbeat()

}

// 页面隐藏处理
function handleVisibilityChange() {
  if (document.visibilityState === 'hidden') {
    console.log('页面已隐藏，停止心跳检测')
    //stopHeartbeat()
  } else {
    console.log('页面已显示，重新启动心跳检测')
    startHeartbeat()
  }
}